import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 导入，vant是默认的成员导入，Lazyload是按需成员导入
// eslint要求：同一个功能包的不同模块对象要使用一个语句导入进来
// 注意：默认在前，按需在后
import Vant, { Lazyload } from 'vant'
import 'vant/lib/index.css'

// rem设配基准值相关依赖包
import 'amfe-flexible/index.min.js'
// 导入全局样式控制文件
// 注意：在vant的css样式导入之后设置
import '@/assets/css/global.less'

import '@/utils/validate.js' // 验证相关

// 倒入全部的过滤器成员
import * as filters from '@/utils/filters'

// 全局过滤器注册
// Object.keys() 获得对象的全部成员名称，以数组返回
Object.keys(filters).forEach(item => {
  Vue.filter(item, filters[item])
})
// 设置一个全局延迟期，是vue的继承成员，名称为$sleep,就是‘自定义’的
// 使得组件可以调用: this.$sleep(),开始要做延迟执行
// time 形参，表示等待时间，毫秒
Vue.prototype.$sleep = (time) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve()
    }, time)
  })
}
Vue.use(Vant)

Vue.use(Lazyload) // 注册懒加载指令
Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
